Academic Year/course:
2023/24
439 - Bachelor's Degree in Informatics Engineering
30229 - Basic Algorithms
Syllabus Information
Academic year:
2023/24
Subject:
30229 - Basic Algorithms
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
439 - Bachelor's Degree in Informatics Engineering
ECTS:
6.0
Year:
3
Semester:
Second semester
Subject type:
---
Module:
---
1. General information
The objective of this subject is that students acquire the necessary knowledge to design and develop efficient algorithms, with emphasis on the identification and application of the fundamental algorithmic schemes. The students will learn to recognize the problems that require this type of schemes for their resolution and how to apply them.
These approaches and goals are aligned with the Sustainable Development Goals (SDGs) of the 2030 Agenda of United Nations (https://www.un.org/sustainabledevelopment/es/) and certain specific targets, such that the acquisition of the learning results of the subject will contribute to some extent to the achievement of target 4 of Goal 8, and target 1 of Goal 9.
It is recommended to have taken the previous subjects of mathematics, programming, data structures and algorithms, and theory of computation
2. Learning results
-
Know various algorithmic schemes and fundamental problems using them.
-
Know how to particularize general algorithmic schemes to solve problems.
-
Know how to identify the most relevant components of a problem and to select the most appropriate algorithmic technique for it, as well as to argue in a reasoned way such choice.
-
Know how to compare problems and use this comparison to solve one problem from an efficient solution of another.
-
Can reason about the correctness and efficiency of the advanced algorithms used.
-
Ability to work in a group, identify group objectives, outline a work plan to achieve them, recognize the different roles within a team, and assume commitment to the tasks assigned.
-
Self-learning and development management including time management and organization.
-
Appreciate the need for continuous learning.
3. Syllabus
1. Introduction
2. Divide and conquer
3. Voracious algorithms
4. Dynamic programming
5. Search with backtracking
6. Branching and pruning
7. Linear programming and reductions
4. Academic activities
Lectures: 2 hours per week
The contents of the subject will be presented.
Types of problems: 1 hour per week
Problems of application of the concepts and techniques presented in the program of the subject will be solved.
Laboratory practices: 3 hours every two weeks
In the practice sessions students will work in teams and perform a series of programming tasks directly related to the topics studied in the subject. The work performed shall be delivered within the deadlines set in each case.
The student's dedication to achieve the learning results in this subject is estimated in 150 hours, distributed as follows:
-
60 hours of activities with the teacher (theoretical, problem and practical classes).
-
84 hours of effective personal study (study of notes and texts, problem solving, class preparation, program development).
-
6 hours of assessment tests.
5. Assessment system
The subject will be assessed in the global assessment modality by means of the following activities:
Practical part (45% of the grade)
Submission and presentation of practical laboratory work.
The following aspects will be evaluated:
-
Quality of documentation, design and implementation, test case design and analysis of tests performed.
-
Ease of retesting by teachers.
-
Ability of each team member to explain and justify the proposed solution.
Written exam (55% of the grade)
Solving problems of a similar nature to those posed in class.
For each problem, the proper application of the resolution methods will be evaluated.
Students will be able to pass the subject by means of a global assessment in the two official exam calls.